在实例之间传输登录名和密码

您所在的位置:网站首页 sql sp_help 在实例之间传输登录名和密码

在实例之间传输登录名和密码

#在实例之间传输登录名和密码| 来源: 网络整理| 查看: 265

在 SQL Server 实例之间传输登录名和密码 项目 10/17/2023

本文介绍如何在 Windows 上运行的 SQL Server 的不同实例之间传输登录名和密码。

原始产品版本:SQL Server 原始 KB 编号: 918992,246133

简介

本文介绍如何在 Microsoft SQL Server 的不同实例之间传输登录名和密码。

注意

实例可能位于同一服务器或不同服务器上,其版本可能不同。

更多信息

在本文中,服务器 A 和服务器 B 是不同的服务器。

将数据库从服务器 A 上的 SQL Server 实例移动到服务器 B 上的 SQL Server 实例后,用户可能无法登录到服务器 B 上的数据库。此外,用户可能会收到以下错误消息:

用户“MyUser”登录失败。 (Microsoft SQL Server,错误:18456)

出现此问题的原因是,未将登录名和密码从服务器 A 上的 SQL Server 实例传输到服务器 B 上的 SQL Server 实例。

注意

出现 18456 错误消息也可能是由于其他原因。 有关这些原因和潜在解决方法的其他信息,请参阅 MSSQLSERVER_18456。

要传输登录名,请根据具体情况采用下列方法之一。

方法 1:在服务器 B) (目标SQL Server计算机上重置密码。

要解决此问题,请在 SQL Server 计算机中重置密码,然后为登录名编写脚本。

注意

重置密码时,将使用密码哈希算法。

方法 2:使用源服务器 A) 上生成的脚本将登录名和密码 ( (服务器 B) 传输到目标服务器。

创建存储过程有助于生成必要的脚本以传输登录名及其密码。 为此,请使用 SQL Server Management Studio (SSMS) 或任何其他客户端工具连接到服务器 A,并运行以下脚本:

USE [master] GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE [dbo].[sp_hexadecimal] ( @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT ) AS BEGIN DECLARE @charvalue varchar (514) DECLARE @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT @i = 1 SELECT @length = DATALENGTH (@binvalue) SELECT @hexstring = '0123456789ABCDEF' WHILE (@i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3